package com.neuralnoise.hibernate.twitter;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;

@MappedSuperclass
public abstract class AbstractProfile implements java.io.Serializable {

	private static final long serialVersionUID = -1109350831534293813L;

	private Long screen;
	
	private String screenName;
	private String name;
	private String location;
	private String language;
	private String url;

	private Integer statuses;
	private Integer followers;
	private Integer favourites;
	private Integer friends;
	
	public AbstractProfile() { }

	public AbstractProfile(Long screen) {
		this.screen = screen;
	}

	public AbstractProfile(Long screen , String screenName, String name, String location, String language,
			String url, Integer statuses, Integer followers, Integer favourites, Integer friends) {
		this.screen = screen;
		this.screenName = screenName;
		this.name = name;
		this.location = location;
		this.language = language;
		this.url = url;
		
		this.setStatuses(statuses);
		this.setFollowers(followers);
		this.setFavourites(favourites);
		this.setFriends(friends);
	}

	@Id
	@Column(name = "screen", nullable = false, length = 32)
	public Long getScreen() {
		return this.screen;
	}

	public void setScreen(Long screen) {
		this.screen = screen;
	}

	@Column(name = "screenName", nullable = true, length = 32)
	public String getScreenName() {
		return this.screenName;
	}

	public void setScreenName(String screenName) {
		this.screenName = screenName;
	}

	@Column(name = "name", nullable = true, length = 32)
	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Column(name = "location", nullable = true, length = 32)
	public String getLocation() {
		return this.location;
	}

	public void setLocation(String location) {
		this.location = location;
	}
	
	@Column(name = "language", nullable = true, length = 8)
	public String getLanguage() {
		return this.language;
	}

	public void setLanguage(String language) {
		this.language = language;
	}
	
	@Column(name = "url", nullable = true, length = 256)
	public String getUrl() {
		return this.url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	@Column(name = "statuses", nullable = true)
	public Integer getStatuses() {
		return statuses;
	}

	public void setStatuses(Integer statuses) {
		this.statuses = statuses;
	}

	@Column(name = "followers", nullable = true)
	public Integer getFollowers() {
		return followers;
	}

	public void setFollowers(Integer followers) {
		this.followers = followers;
	}

	@Column(name = "favourites", nullable = true)
	public Integer getFavourites() {
		return favourites;
	}

	public void setFavourites(Integer favourites) {
		this.favourites = favourites;
	}

	@Column(name = "friends", nullable = true)
	public Integer getFriends() {
		return friends;
	}

	public void setFriends(Integer friends) {
		this.friends = friends;
	}
}
